package com.gitee.qdbp.general.marketing.api.activity.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.gitee.qdbp.general.marketing.enums.ActivityState;

/**
 * 活动主查询类
 *
 * @author zhh
 * @version 181114
 */
public class ActivityCoreWhere extends ActivityCoreBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 活动编号列表 **/
    private List<String> ids;

    /** 活动编号前模匹配条件 **/
    private String idStarts;

    /** 活动编号后模匹配条件 **/
    private String idEnds;

    /** 活动编号模糊查询条件 **/
    private String idLike;

    /** 活动名称空值/非空值查询 **/
    private Boolean activityNameIsNull;

    /** 活动名称前模匹配条件 **/
    private String activityNameStarts;

    /** 活动名称后模匹配条件 **/
    private String activityNameEnds;

    /** 活动名称模糊查询条件 **/
    private String activityNameLike;

    /** 活动描述空值/非空值查询 **/
    private Boolean activityIntroIsNull;

    /** 活动描述前模匹配条件 **/
    private String activityIntroStarts;

    /** 活动描述后模匹配条件 **/
    private String activityIntroEnds;

    /** 活动描述模糊查询条件 **/
    private String activityIntroLike;

    /** 最小创建时间 **/
    private Date createTimeMin;

    /** 最大创建时间 **/
    private Date createTimeMax;

    /** 最小创建时间 **/
    private Date createTimeMinWithDay;

    /** 最大创建时间 **/
    private Date createTimeMaxWithDay;

    /** 生效时间空值/非空值查询 **/
    private Boolean enableTimeIsNull;

    /** 最小生效时间 **/
    private Date enableTimeMin;

    /** 最大生效时间 **/
    private Date enableTimeMax;

    /** 最小生效时间 **/
    private Date enableTimeMinWithDay;

    /** 最大生效时间 **/
    private Date enableTimeMaxWithDay;

    /** 失效时间空值/非空值查询 **/
    private Boolean disableTimeIsNull;

    /** 最小失效时间 **/
    private Date disableTimeMin;

    /** 最大失效时间 **/
    private Date disableTimeMax;

    /** 最小失效时间 **/
    private Date disableTimeMinWithDay;

    /** 最大失效时间 **/
    private Date disableTimeMaxWithDay;

    /** 每人次数限制空值/非空值查询 **/
    private Boolean frequencyLimitationIsNull;

    /** 最小每人次数限制 **/
    private Integer frequencyLimitationMin;

    /** 最大每人次数限制 **/
    private Integer frequencyLimitationMax;

    /** 选项空值/非空值查询 **/
    private Boolean optionsIsNull;

    /** 活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)空值/非空值查询 **/
    private Boolean activityStateIsNull;

    /** 活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)列表 **/
    private List<ActivityState> activityStates;

    /** 获取活动编号列表 **/
    public List<String> getIds() {
        return ids;
    }

    /** 设置活动编号列表 **/
    public void setIds(List<String> ids) {
        this.ids = ids;
    }

    /** 增加活动编号 **/
    public void addId(String... ids) {
        if (this.ids == null) {
            this.ids = new ArrayList<>();
        }
        this.ids.addAll(Arrays.asList(ids));
    }

    /** 获取活动编号前模匹配条件 **/
    public String getIdStarts() {
        return idStarts;
    }

    /** 设置活动编号前模匹配条件 **/
    public void setIdStarts(String idStarts) {
        this.idStarts = idStarts;
    }

    /** 获取活动编号后模匹配条件 **/
    public String getIdEnds() {
        return idEnds;
    }

    /** 设置活动编号后模匹配条件 **/
    public void setIdEnds(String idEnds) {
        this.idEnds = idEnds;
    }

    /** 获取活动编号模糊查询条件 **/
    public String getIdLike() {
        return idLike;
    }

    /** 设置活动编号模糊查询条件 **/
    public void setIdLike(String idLike) {
        this.idLike = idLike;
    }

    /** 判断活动名称是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getActivityNameIsNull() {
        return activityNameIsNull;
    }

    /**
     * 设置活动名称空值查询(true:空值查询|false:非空值查询)
     *
     * @param activityNameIsNull 活动名称空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setActivityNameIsNull(Boolean activityNameIsNull) {
        this.activityNameIsNull = activityNameIsNull;
    }

    /** 获取活动名称前模匹配条件 **/
    public String getActivityNameStarts() {
        return activityNameStarts;
    }

    /** 设置活动名称前模匹配条件 **/
    public void setActivityNameStarts(String activityNameStarts) {
        this.activityNameStarts = activityNameStarts;
    }

    /** 获取活动名称后模匹配条件 **/
    public String getActivityNameEnds() {
        return activityNameEnds;
    }

    /** 设置活动名称后模匹配条件 **/
    public void setActivityNameEnds(String activityNameEnds) {
        this.activityNameEnds = activityNameEnds;
    }

    /** 获取活动名称模糊查询条件 **/
    public String getActivityNameLike() {
        return activityNameLike;
    }

    /** 设置活动名称模糊查询条件 **/
    public void setActivityNameLike(String activityNameLike) {
        this.activityNameLike = activityNameLike;
    }

    /** 判断活动描述是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getActivityIntroIsNull() {
        return activityIntroIsNull;
    }

    /** 设置活动描述空值查询(true:空值查询|false:非空值查询) **/
    public void setActivityIntroIsNull(Boolean activityIntroIsNull) {
        this.activityIntroIsNull = activityIntroIsNull;
    }

    /** 获取活动描述前模匹配条件 **/
    public String getActivityIntroStarts() {
        return activityIntroStarts;
    }

    /** 设置活动描述前模匹配条件 **/
    public void setActivityIntroStarts(String activityIntroStarts) {
        this.activityIntroStarts = activityIntroStarts;
    }

    /** 获取活动描述后模匹配条件 **/
    public String getActivityIntroEnds() {
        return activityIntroEnds;
    }

    /** 设置活动描述后模匹配条件 **/
    public void setActivityIntroEnds(String activityIntroEnds) {
        this.activityIntroEnds = activityIntroEnds;
    }

    /** 获取活动描述模糊查询条件 **/
    public String getActivityIntroLike() {
        return activityIntroLike;
    }

    /** 设置活动描述模糊查询条件 **/
    public void setActivityIntroLike(String activityIntroLike) {
        this.activityIntroLike = activityIntroLike;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMin() {
        return createTimeMin;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMin(Date createTimeMin) {
        this.createTimeMin = createTimeMin;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMax() {
        return createTimeMax;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMax(Date createTimeMax) {
        this.createTimeMax = createTimeMax;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMinWithDay() {
        return createTimeMinWithDay;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMinWithDay(Date createTimeMinWithDay) {
        this.createTimeMinWithDay = createTimeMinWithDay;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMaxWithDay() {
        return createTimeMaxWithDay;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMaxWithDay(Date createTimeMaxWithDay) {
        this.createTimeMaxWithDay = createTimeMaxWithDay;
    }

    /** 判断生效时间是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getEnableTimeIsNull() {
        return enableTimeIsNull;
    }

    /**
     * 设置生效时间空值查询(true:空值查询|false:非空值查询)
     *
     * @param enableTimeIsNull 生效时间空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setEnableTimeIsNull(Boolean enableTimeIsNull) {
        this.enableTimeIsNull = enableTimeIsNull;
    }

    /** 获取最小生效时间 **/
    public Date getEnableTimeMin() {
        return enableTimeMin;
    }

    /** 设置最小生效时间 **/
    public void setEnableTimeMin(Date enableTimeMin) {
        this.enableTimeMin = enableTimeMin;
    }

    /** 获取最大生效时间 **/
    public Date getEnableTimeMax() {
        return enableTimeMax;
    }

    /** 设置最大生效时间 **/
    public void setEnableTimeMax(Date enableTimeMax) {
        this.enableTimeMax = enableTimeMax;
    }

    /** 获取最小生效时间 **/
    public Date getEnableTimeMinWithDay() {
        return enableTimeMinWithDay;
    }

    /** 设置最小生效时间 **/
    public void setEnableTimeMinWithDay(Date enableTimeMinWithDay) {
        this.enableTimeMinWithDay = enableTimeMinWithDay;
    }

    /** 获取最大生效时间 **/
    public Date getEnableTimeMaxWithDay() {
        return enableTimeMaxWithDay;
    }

    /** 设置最大生效时间 **/
    public void setEnableTimeMaxWithDay(Date enableTimeMaxWithDay) {
        this.enableTimeMaxWithDay = enableTimeMaxWithDay;
    }

    /** 判断失效时间是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getDisableTimeIsNull() {
        return disableTimeIsNull;
    }

    /**
     * 设置失效时间空值查询(true:空值查询|false:非空值查询)
     *
     * @param disableTimeIsNull 失效时间空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setDisableTimeIsNull(Boolean disableTimeIsNull) {
        this.disableTimeIsNull = disableTimeIsNull;
    }

    /** 获取最小失效时间 **/
    public Date getDisableTimeMin() {
        return disableTimeMin;
    }

    /** 设置最小失效时间 **/
    public void setDisableTimeMin(Date disableTimeMin) {
        this.disableTimeMin = disableTimeMin;
    }

    /** 获取最大失效时间 **/
    public Date getDisableTimeMax() {
        return disableTimeMax;
    }

    /** 设置最大失效时间 **/
    public void setDisableTimeMax(Date disableTimeMax) {
        this.disableTimeMax = disableTimeMax;
    }

    /** 获取最小失效时间 **/
    public Date getDisableTimeMinWithDay() {
        return disableTimeMinWithDay;
    }

    /** 设置最小失效时间 **/
    public void setDisableTimeMinWithDay(Date disableTimeMinWithDay) {
        this.disableTimeMinWithDay = disableTimeMinWithDay;
    }

    /** 获取最大失效时间 **/
    public Date getDisableTimeMaxWithDay() {
        return disableTimeMaxWithDay;
    }

    /** 设置最大失效时间 **/
    public void setDisableTimeMaxWithDay(Date disableTimeMaxWithDay) {
        this.disableTimeMaxWithDay = disableTimeMaxWithDay;
    }

    /** 判断每人次数限制是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getFrequencyLimitationIsNull() {
        return frequencyLimitationIsNull;
    }

    /** 设置每人次数限制空值查询(true:空值查询|false:非空值查询) **/
    public void setFrequencyLimitationIsNull(Boolean frequencyLimitationIsNull) {
        this.frequencyLimitationIsNull = frequencyLimitationIsNull;
    }

    /** 获取最小每人次数限制 **/
    public Integer getFrequencyLimitationMin() {
        return frequencyLimitationMin;
    }

    /** 设置最小每人次数限制 **/
    public void setFrequencyLimitationMin(Integer frequencyLimitationMin) {
        this.frequencyLimitationMin = frequencyLimitationMin;
    }

    /** 获取最大每人次数限制 **/
    public Integer getFrequencyLimitationMax() {
        return frequencyLimitationMax;
    }

    /** 设置最大每人次数限制 **/
    public void setFrequencyLimitationMax(Integer frequencyLimitationMax) {
        this.frequencyLimitationMax = frequencyLimitationMax;
    }

    /** 判断选项是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getOptionsIsNull() {
        return optionsIsNull;
    }

    /** 设置选项空值查询(true:空值查询|false:非空值查询) **/
    public void setOptionsIsNull(Boolean optionsIsNull) {
        this.optionsIsNull = optionsIsNull;
    }

    /** 判断活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getActivityStateIsNull() {
        return activityStateIsNull;
    }

    /**
     * 设置活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)空值查询(true:空值查询|false:非空值查询)
     *
     * @param activityStateIsNull 活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setActivityStateIsNull(Boolean activityStateIsNull) {
        this.activityStateIsNull = activityStateIsNull;
    }

    /** 获取活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)列表 **/
    public List<ActivityState> getActivityStates() {
        return activityStates;
    }

    /** 设置活动状态(1.未开始|2.进行中|3.已暂停|4.已结束)列表 **/
    public void setActivityStates(List<ActivityState> activityStates) {
        this.activityStates = activityStates;
    }

    /** 增加活动状态(1.未开始|2.进行中|3.已暂停|4.已结束) **/
    public void addActivityState(ActivityState... activityStates) {
        if (this.activityStates == null) {
            this.activityStates = new ArrayList<>();
        }
        this.activityStates.addAll(Arrays.asList(activityStates));
    }

}